home *** CD-ROM | disk | FTP | other *** search
/ PC World Interactive 7 / PC World Interactive 7.iso / program / pasprog.EXE / KALIN-IS.TXT < prev    next >
Text File  |  1980-01-10  |  4KB  |  65 lines

  1.   ┌──────────────────────────────────────────────────────────────────────────┐
  2.   │┌────────────────────────────────────────────────────────────────────────┐│
  3.   ││                                                                        ││
  4.   ││                               KALIN ÿ₧LER...                           ││
  5.   ││                                                                        ││
  6.   │└────────────────────────────────────────────────────────────────────────┘│
  7.   │ PS 31 · ₧ubat'96                                      Tunç Sabuncu       │
  8.   └──────────────────────────────────────────────────────────────────────────┘
  9.  
  10.  
  11.  Bir süredir bu sayfalarda "ince iƒler" baƒlìºì altìnda veri yapìlarìndan söz
  12.  ediyoruz. Veri yapìlarì kadar önemli olan bir diºer konu da sayìsal
  13.  analizdir. ÿçinden çìkìlmaz gibi görünen denklemleri bilgisayarla kolayca
  14.  çözebilirsiniz. Özellikle virgülden sonraki sayìlarìn da önemli olduºu
  15.  hesaplamalarda bilgisayarlarìn insan beynine açìk bir üstünlüºü vardìr. Bu
  16.  iddiaya bozulan varsa aƒaºìdaki denklem sistemine bir göz atabilir:
  17.  
  18.      77.43*X1 + 45.33*X2 + 89.65*X3 = 77.56
  19.      56.12*X1 + 90.02*X2 + 12.34*X3 = 55.55
  20.      99.01*X1 + 44.99*X2 + 60.11*X3 = 65.22
  21.  
  22.  Aslìnda bu tür denklem sistemlerinin çözümü üniversitelerde lineer cebir
  23.  derslerinde öºretilir. Katsayìlarì bir matris oluƒturacak ƒekilde yazìp
  24.  satìr iƒlemleri ile ana çapraz ( köƒegen üzerindeki elemanlar ) altìnda
  25.  kalan elemanlar sìfìrlanìr ve X'ler bir bir hesaplanìr. Ama yukarìdaki gibi
  26.  bir soruyu soracak kadar insafsìz bir lineer cebir hocasì her halde ÿTÜ'de
  27.  bile yoktur. Neyse, dedikoduyu bir yana bìrakalìm da programdan söz edelim.
  28.  Bu ayki programìmìz yukarìdaki gibi üç bilinmeyenli üç denklemden oluƒan
  29.  sistemleri çözen bir sayìsal analiz uygulamasì. Siz yanlìzca katsayìlarì ve
  30.  eƒitliºin karƒìsìndaki deºeri veriyorsunuz, gerisi ona kalmìƒ. Programìmìz
  31.  yaptìºì satìr iƒlemleri konusunda kullanìcìyì aydìnlatìrken matrisin her bir
  32.  evredeki halini de ekrana getirerek adeta bir BDE (!) uygulamasì gibi
  33.  çalìƒìyor.
  34.  
  35.  
  36.  Nasìl Çalìƒìr?
  37.  
  38.  Çok fazla gerekmemekle birlikte kod gene de modüler yazìldì. Bunlardan
  39.  'matris_al' altyordamì denklem sisteminin katsayìlarìnì matris ƒeklinde
  40.  alìrken 'matris_yaz' da a[i,j] matrisini satìr satìr yazìyor. ( Konuya yeni
  41.  ìsìnan arkadaƒlar bu altyordamlarì kendi matris programlarìnda
  42.  kullanabilirler.) Esas önemli olan altyordamlar 'birinci' ve 'ikinci'.
  43.  Birinci adlì yordam çaºìrìldìºìnda ikinci ve üçüncü satìrlarìn ilk
  44.  elemanlarìnì birinci satìrdan yararlanarak sìfìra eƒitliyor. ÿkinci ise
  45.  ikinci satìrìn ikinci elemanìnì kullanarak üçüncü satìrìn ikinci elemanìnì
  46.  sìfìra eƒitliyor. Bu iƒlemlerin sonunda üç bilinmeyenli üç denklem yerine
  47.  bir, iki ve üç bilinmeyenli üç denklem ortaya çìkìyor. ÿƒin geri kalan kìsmì
  48.  margarinden saç çekmek kadar kolay.
  49.  
  50.  Yazìlìm Ergonomisi üzerine birkaç lakìrdì...
  51.  
  52.  Programìn kodu içinde ak샠üzerine hiçbir etkisi olmayan writeln'ler
  53.  göreceksiniz. Bunlar olmadan program bazì sayìlar alan ve bazì sayìlar veren
  54.  bir kara kutu olurdu. Oysa bu basit komutlar sayesinde matris üzerinde
  55.  yapìlan satìr iƒlemleri bir bir anlatìlìyor ve bunlarìn etkisi adìm adìm
  56.  gösteriliyor. Programìn sonlarìna doºru ise hangi X deºerinin nereden
  57.  geldiºini belli etmek için "...'yì ƒurada yerine koyarsak" gibi ifadelerle
  58.  kullanìcì aydìnlatìlìyor. Aslìnda ergonomik program yazmak çoºu zaman bu
  59.  kadar basit. Örneºin kullanìcìdan bir girdi istendiºi zaman bunun ne
  60.  olduºunu, nerede nasìl kullanìlacaºìnì açìklayan ve bu sayede kolay
  61.  kullanìlan ve hìzla öºrenilen programlar yazmak hiç zor deºil. Bu kodu hem
  62.  'kalìn iƒler' gözüyle hem de yazìlìm ergonomisi gözüyle inceleyin. Hepinize
  63.  sayìsal analizli günler...
  64.  
  65.